package org.upo.eps.it.phama.struts.actionform;

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.upo.eps.it.phama.bean.Empleado;
import org.upo.eps.it.phama.dao.EmpleadoDAO;

/**
 *
 * @author grupo 4
 */
public class EmpleadosActionForm extends ActionForm {

    private String opcion;
    private int id;
    private String nombre;
    private String apellido1;
    private String apellido2;
    private int idDireccion;
    private String direccion;
    private String poblacion;
    private String provincia;
    private String cp;
    private String telefono;
    private String correo;
    private int jefe;
    private String categoria;
    private String usuario;
    private String contrasena;
    private List<Empleado> misEmpleados;
    private List<Empleado> resultadoBusqueda;

    //<editor-fold defaultstate="collapsed" desc="constructors">
    public EmpleadosActionForm() {
        super();
        misEmpleados = EmpleadoDAO.getEmpleados();
        opcion = ""; // Es importante para evitar acceso a nulos.
    }
    //</editor-fold>

    //<editor-fold defaultstate="collapsed" desc="getters & setters">
    public String getOpcion() {
        return opcion;
    }

    public void setOpcion(String opcion) {
        this.opcion = opcion;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido1() {
        return apellido1;
    }

    public void setApellido1(String apellido1) {
        this.apellido1 = apellido1;
    }

    public String getApellido2() {
        return apellido2;
    }

    public void setApellido2(String apellido2) {
        this.apellido2 = apellido2;
    }

    public int getIdDireccion() {
        return idDireccion;
    }

    public void setIdDireccion(int idDireccion) {
        this.idDireccion = idDireccion;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getPoblacion() {
        return poblacion;
    }

    public void setPoblacion(String poblacion) {
        this.poblacion = poblacion;
    }

    public String getProvincia() {
        return provincia;
    }

    public void setProvincia(String provincia) {
        this.provincia = provincia;
    }

    public String getCp() {
        return cp;
    }

    public void setCp(String cp) {
        this.cp = cp;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getCorreo() {
        return correo;
    }

    public void setCorreo(String correo) {
        this.correo = correo;
    }

    public int getJefe() {
        return jefe;
    }

    public void setJefe(int jefe) {
        this.jefe = jefe;
    }

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getContrasena() {
        return contrasena;
    }

    public void setContrasena(String contrasena) {
        this.contrasena = contrasena;
    }

    public List<Empleado> getMisEmpleados() {
        return misEmpleados;
    }

    public void setMisEmpleados(List<Empleado> misEmpleados) {
        this.misEmpleados = misEmpleados;
    }

    public List<Empleado> getResultadoBusqueda() {
        return resultadoBusqueda;
    }

    public void setResultadoBusqueda(List<Empleado> resultadoBusqueda) {
        this.resultadoBusqueda = resultadoBusqueda;
    }

    //</editor-fold>
    /**
     * This is the action called from the Struts framework.
     *
     * @param mapping The ActionMapping used to select this instance.
     * @param request The HTTP Request we are processing.
     * @return
     */
    @Override
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();

        HttpSession session = request.getSession();
            if (opcion.equals("grabar") || opcion.equals("modificar")) {
                if (nombre == null || nombre.equals("")) {
                    errors.add("nombre", new ActionMessage("error.required", "nombre"));
                }
                if (apellido1 == null || apellido1.equals("")) {
                    errors.add("apellido1", new ActionMessage("error.required", "apellido #1"));
                }
                if (apellido2 == null || apellido2.equals("")) {
                    errors.add("apellido2", new ActionMessage("error.required", "apellido #2"));
                }
                if (direccion == null || direccion.equals("")) {
                    errors.add("direccion", new ActionMessage("error.required", "direccion"));
                }
                if (poblacion == null || poblacion.equals("")) {
                    errors.add("poblacion", new ActionMessage("error.required", "poblacion"));
                }
                if (categoria == null || categoria.equals("")) {
                    errors.add("categoria", new ActionMessage("error.required", "categoria"));
                }
                if (usuario == null || usuario.equals("")) {
                    errors.add("usuario", new ActionMessage("error.required", "usuario"));
                }
            }

        return errors;
    }
}
